package ejb.com.bbva.cbm.util.voucher;

import cbm.commons.UtilitarioFunciones;

public class DatosVoucherTransaccionSignificativa extends DatosVoucher {
	private String numeroCuenta;
	private String nombreTitular;
	private String moneda;
	private String simboloMoneda;
	private String descripcionTipoTransaccion;
	private String monto;
	private String descripcion;
	private String tipoOrigen;
	private String descripcionTipoOrigen;
	private String documento;
	private String cuentaBene;
	private String tipoDocuBene;
	private String descripcionTipoDocuBene;
	private String numeroDocuBene;
	private String nombreBene;
	private String direccionBene;	
	private String cuentaOrde;
	private String tipoDocuOrde;
	private String descripcionTipoDocuOrde;
	private String numeroDocuOrde;
	private String nombreOrde;
	private String direccionOrde;
	private String tipoDocuSoli;
	private String descripcionTipoDocuSoli;
	private String numeroDocuSoli;
	private String nombreSoli;
	private String direccionSoli;

	public DatosVoucherTransaccionSignificativa(){
		super(56, 0);
	}
	
	public String getNumeroCuenta() {
		return numeroCuenta;
	}

	public void setNumeroCuenta(String numeroCuenta) {
		this.numeroCuenta = numeroCuenta;
	}

	public String getNombreTitular() {
		return nombreTitular;
	}

	public void setNombreTitular(String nombreTitular) {
		this.nombreTitular = nombreTitular;
	}

	public String getMoneda() {
		return moneda;
	}

	public void setMoneda(String moneda) {
		this.moneda = moneda;
	}


	@Override
	public String generarCadenaImpresion() {
		
		StringBuilder impresionTexto = new StringBuilder();
		impresionTexto.append(UtilitarioFunciones.SALTO_DE_LINEA);
		impresionTexto.append(UtilitarioFunciones.formatStringCENTER("-REGISTRO TRANSACCIONES SIGNIFICATIVAS-", 42, ' ')).append(UtilitarioFunciones.SALTO_DE_LINEA);
		impresionTexto.append(UtilitarioFunciones.formatStringLEFT("FECHA", 10, ' ')).append(": ").
		append(UtilitarioFunciones.formatearFecha(UtilitarioFunciones.obtenerFechaActual(),"dd-MM-yyyy")).
		append(UtilitarioFunciones.SALTO_DE_LINEA);
		impresionTexto.append(UtilitarioFunciones.SALTO_DE_LINEA);
		impresionTexto.append(UtilitarioFunciones.formatStringLEFT("OPERACION", 10, ' ')).append(": ").
			append(UtilitarioFunciones.formatStringLEFT(this.descripcionTipoTransaccion,50,' ')).append(UtilitarioFunciones.SALTO_DE_LINEA).append(UtilitarioFunciones.SALTO_DE_LINEA);
		impresionTexto.append(UtilitarioFunciones.formatStringLEFT("CUENTA", 10, ' ')).append(": ").append((this.numeroCuenta==null?"----------":this.numeroCuenta)).append(UtilitarioFunciones.SALTO_DE_LINEA);
		impresionTexto.append(UtilitarioFunciones.formatStringLEFT("IMPORTE",10,' ')).append(": ").append(this.simboloMoneda+" ").append(this.monto).append(UtilitarioFunciones.SALTO_DE_LINEA);
		impresionTexto.append(UtilitarioFunciones.formatStringLEFT("ORIGEN", 10, ' ')).append(": ").
			append(UtilitarioFunciones.formatStringLEFT(this.descripcionTipoOrigen,15,' ')).append(UtilitarioFunciones.SALTO_DE_LINEA);
		impresionTexto.append(UtilitarioFunciones.formatStringLEFT("DOCUMENTO",10, ' ')).append(": ").append((this.documento==null)?" ":this.documento).
			append(UtilitarioFunciones.SALTO_DE_LINEA);
		
		
		impresionTexto.append(UtilitarioFunciones.formatStringCENTER("--- DATOS DEL BENEFICIARIO ---", 43, ' ')).append(UtilitarioFunciones.SALTO_DE_LINEA);
		impresionTexto.append(UtilitarioFunciones.formatStringLEFT("NOMBRE/APELLIDOS", 16, ' ')).append(": ")
					  .append((this.nombreBene==null)?" ":this.nombreBene)
					  .append(UtilitarioFunciones.SALTO_DE_LINEA);
		impresionTexto.append(UtilitarioFunciones.formatStringLEFT("DIRECCION", 16, ' ')).append(": ")
		  			  .append((this.direccionBene==null)?" ":this.direccionBene).append(UtilitarioFunciones.SALTO_DE_LINEA);
		impresionTexto.append(UtilitarioFunciones.formatStringLEFT("COD ID. :", 10, ' '))
		  			  .append(this.descripcionTipoDocuBene).append(UtilitarioFunciones.SALTO_DE_LINEA);
		impresionTexto.append("NUM. IDENTIFICACION: ").append(this.numeroDocuBene)
		  			  .append(UtilitarioFunciones.SALTO_DE_LINEA);

		impresionTexto.append(UtilitarioFunciones.formatStringCENTER("--- DATOS DEL ORDENANTE ---", 43, ' ')).append(UtilitarioFunciones.SALTO_DE_LINEA);
		impresionTexto.append(UtilitarioFunciones.formatStringLEFT("NOMBRE/APELLIDOS", 16, ' ')).append(": ")
					  .append((this.nombreOrde==null)?" ":this.nombreOrde)
					  .append(UtilitarioFunciones.SALTO_DE_LINEA);
		impresionTexto.append(UtilitarioFunciones.formatStringLEFT("DIRECCION", 16, ' ')).append(": ")
		  			  .append((this.direccionOrde==null)?" ":this.direccionOrde).append(UtilitarioFunciones.SALTO_DE_LINEA);
		impresionTexto.append(UtilitarioFunciones.formatStringLEFT("COD ID. :", 10, ' '))
		  			  .append(this.descripcionTipoDocuOrde).append(UtilitarioFunciones.SALTO_DE_LINEA);
		impresionTexto.append("NUM. IDENTIFICACION: ").append(this.numeroDocuOrde)
		  			  .append(UtilitarioFunciones.SALTO_DE_LINEA);
		
		impresionTexto.append(UtilitarioFunciones.formatStringCENTER("--- DATOS DEL SOLICITANTE ---", 43, ' ')).append(UtilitarioFunciones.SALTO_DE_LINEA);
		impresionTexto.append(UtilitarioFunciones.formatStringLEFT("NOMBRE/APELLIDOS", 16, ' ')).append(": ")
					  .append((this.nombreSoli==null)?" ":this.nombreSoli)
					  .append(UtilitarioFunciones.SALTO_DE_LINEA);
		impresionTexto.append(UtilitarioFunciones.formatStringLEFT("DIRECCION", 16, ' ')).append(": ")
		  			  .append((this.direccionSoli==null)?" ":this.direccionSoli).append(UtilitarioFunciones.SALTO_DE_LINEA);
		impresionTexto.append(UtilitarioFunciones.formatStringLEFT("COD ID. :", 10, ' '))
		  			  .append(this.descripcionTipoDocuSoli).append(UtilitarioFunciones.SALTO_DE_LINEA);
		impresionTexto.append("NUM. IDENTIFICACION: ").append(this.numeroDocuSoli)
		  			  .append(UtilitarioFunciones.SALTO_DE_LINEA);
		
		impresionTexto.append(UtilitarioFunciones.formatStringLEFT("(DECLARO QUE LOS DATOS CONSIGNADOS SON VERDADEROS)", 50, ' ')).append(UtilitarioFunciones.SALTO_DE_LINEA);
		
		impresionTexto.append(UtilitarioFunciones.SALTO_DE_LINEA);
		impresionTexto.append(UtilitarioFunciones.SALTO_DE_LINEA);
		impresionTexto.append(UtilitarioFunciones.formatStringCENTER("----------------", 43, ' ')).append(UtilitarioFunciones.SALTO_DE_LINEA);
		impresionTexto.append(UtilitarioFunciones.formatStringCENTER("FIRMA", 43, ' ')).append(UtilitarioFunciones.SALTO_DE_LINEA);
		
		String glosa = generarGlosaOperacion();
		if(glosa != null && !glosa.trim().equals("")) {
			impresionTexto.append("GLOSA: ").append(glosa).append(UtilitarioFunciones.SALTO_DE_LINEA);
		}
		impresionTexto.append("CLAVE: ").append(generarClaveOperacion()).append(UtilitarioFunciones.SALTO_DE_LINEA);
		impresionTexto.append((UtilitarioFunciones.formatStringCENTER(oficinaNombre, 43, ' ')));
		impresionTexto.append(UtilitarioFunciones.SALTO_DE_LINEA);
		impresionTexto.append(UtilitarioFunciones.SALTO_DE_LINEA);
		impresionTexto.append(UtilitarioFunciones.SALTO_DE_LINEA);
		impresionTexto.append(UtilitarioFunciones.SALTO_DE_LINEA);
		impresionTexto.append(UtilitarioFunciones.SALTO_DE_LINEA);
		impresionTexto.append(UtilitarioFunciones.SALTO_DE_LINEA);
		impresionTexto.append(UtilitarioFunciones.SALTO_DE_LINEA);
		impresionTexto.append(UtilitarioFunciones.getFinalPagina());
		return impresionTexto.toString();
	}

	public String getSimboloMoneda() {
		return simboloMoneda;
	}

	public void setSimboloMoneda(String simboloMoneda) {
		this.simboloMoneda = simboloMoneda;
	}

	public String getMonto() {
		return monto;
	}

	public void setMonto(String monto) {
		this.monto = monto;
	}

	public String getDescripcion() {
		return descripcion;
	}

	public void setDescripcion(String descripcion) {
		this.descripcion = descripcion;
	}

	public String getTipoOrigen() {
		return tipoOrigen;
	}

	public void setTipoOrigen(String tipoOrigen) {
		this.tipoOrigen = tipoOrigen;
	}

	public String getDocumento() {
		return documento;
	}

	public void setDocumento(String documento) {
		this.documento = documento;
	}

	public String getCuentaBene() {
		return cuentaBene;
	}

	public void setCuentaBene(String cuentaBene) {
		this.cuentaBene = cuentaBene;
	}

	public String getTipoDocuBene() {
		return tipoDocuBene;
	}

	public void setTipoDocuBene(String tipoDocuBene) {
		this.tipoDocuBene = tipoDocuBene;
	}

	public String getNumeroDocuBene() {
		return numeroDocuBene;
	}

	public void setNumeroDocuBene(String numeroDocuBene) {
		this.numeroDocuBene = numeroDocuBene;
	}

	public String getNombreBene() {
		return nombreBene;
	}

	public void setNombreBene(String nombreBene) {
		this.nombreBene = nombreBene;
	}

	public String getDireccionBene() {
		return direccionBene;
	}

	public void setDireccionBene(String direccionBene) {
		this.direccionBene = direccionBene;
	}

	public String getCuentaOrde() {
		return cuentaOrde;
	}

	public void setCuentaOrde(String cuentaOrde) {
		this.cuentaOrde = cuentaOrde;
	}

	public String getTipoDocuOrde() {
		return tipoDocuOrde;
	}

	public void setTipoDocuOrde(String tipoDocuOrde) {
		this.tipoDocuOrde = tipoDocuOrde;
	}

	public String getNumeroDocuOrde() {
		return numeroDocuOrde;
	}

	public void setNumeroDocuOrde(String numeroDocuOrde) {
		this.numeroDocuOrde = numeroDocuOrde;
	}

	public String getNombreOrde() {
		return nombreOrde;
	}

	public void setNombreOrde(String nombreOrde) {
		this.nombreOrde = nombreOrde;
	}

	public String getDireccionOrde() {
		return direccionOrde;
	}

	public void setDireccionOrde(String direccionOrde) {
		this.direccionOrde = direccionOrde;
	}

	public String getTipoDocuSoli() {
		return tipoDocuSoli;
	}

	public void setTipoDocuSoli(String tipoDocuSoli) {
		this.tipoDocuSoli = tipoDocuSoli;
	}

	public String getNumeroDocuSoli() {
		return numeroDocuSoli;
	}

	public void setNumeroDocuSoli(String numeroDocuSoli) {
		this.numeroDocuSoli = numeroDocuSoli;
	}

	public String getNombreSoli() {
		return nombreSoli;
	}

	public void setNombreSoli(String nombreSoli) {
		this.nombreSoli = nombreSoli;
	}

	public String getDireccionSoli() {
		return direccionSoli;
	}

	public void setDireccionSoli(String direccionSoli) {
		this.direccionSoli = direccionSoli;
	}

	public String getDescripcionTipoTransaccion() {
		return descripcionTipoTransaccion;
	}

	public void setDescripcionTipoTransaccion(String descripcionTipoTransaccion) {
		this.descripcionTipoTransaccion = descripcionTipoTransaccion;
	}

	public String getDescripcionTipoOrigen() {
		return descripcionTipoOrigen;
	}

	public void setDescripcionTipoOrigen(String descripcionTipoOrigen) {
		this.descripcionTipoOrigen = descripcionTipoOrigen;
	}

	public String getDescripcionTipoDocuBene() {
		return descripcionTipoDocuBene;
	}

	public void setDescripcionTipoDocuBene(String descripcionTipoDocuBene) {
		this.descripcionTipoDocuBene = descripcionTipoDocuBene;
	}

	public String getDescripcionTipoDocuOrde() {
		return descripcionTipoDocuOrde;
	}

	public void setDescripcionTipoDocuOrde(String descripcionTipoDocuOrde) {
		this.descripcionTipoDocuOrde = descripcionTipoDocuOrde;
	}

	public String getDescripcionTipoDocuSoli() {
		return descripcionTipoDocuSoli;
	}

	public void setDescripcionTipoDocuSoli(String descripcionTipoDocuSoli) {
		this.descripcionTipoDocuSoli = descripcionTipoDocuSoli;
	}
}
